home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / doors / nup / nup.c
Encoding:
C/C++ Source or Header  |  1995-09-02  |  3.0 KB  |  170 lines

  1. #include <ae/doorheader.h>
  2. #include <ae/glue.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7. #include <proto/exec.h>
  8. #include <proto/dos.h>
  9. #include <proto/icon.h>
  10.  
  11. #include <exec/execbase.h>
  12. #include <exec/memory.h>
  13. #include <libraries/dos.h>
  14. #include <libraries/dosextens.h>
  15. #include <devices/conunit.h>
  16. #include <workbench/workbench.h>
  17.  
  18. #define sm sendmessage
  19.  
  20. void getconfig(void);
  21.  
  22. int loop=0;
  23. int i=0;    
  24. int x=0;    
  25. int counter=0;
  26. int count=0;    
  27. int len;
  28. char string[255];
  29. char nodestr[5];
  30. int numnode=0;
  31. char newpath[30];
  32. char message[] = "\nNup Finder V1.0 by SuBhUmAnZ/LSD.  (C)1994";
  33. char message1[]= "------------------------------------------\n";
  34.                     
  35. char shownup[100];
  36.  
  37. struct config
  38. {
  39.     char numnodes[5];
  40.     char path[30];
  41. }cfg; 
  42.  
  43.  
  44. void main(int argc, char *argv[])
  45. {
  46.  
  47. struct ExecBase        *SysBase = (*((struct ExecBase **) 4));
  48. struct IconBase        *IconBase;
  49. struct DiskObject    *dob=NULL;
  50.  
  51. if(argc<2) /* AmiExpress will supply line_num on command line */
  52.     {
  53.                 printf("Nup Finder V1.0 (C) 1994 SuBhUmAnZ/LSD\n");
  54.         printf("This is a XIM door and must be called from /X.\n");
  55.         exit(0);
  56.     }
  57.  
  58. Register(argv[1][0]-'0');
  59.  
  60.  
  61. sm(message,1);
  62. sm(message1,1);
  63.  
  64. getconfig();
  65.  
  66. if (SysBase->LibNode.lib_Version < 37) exit(0);
  67.  
  68. IconBase= (struct IconBase *)OpenLibrary ("icon.library",37);
  69.  
  70.  
  71. for(loop=0;loop<numnode;loop++)
  72. {
  73.  
  74. i=0;
  75. x=0;
  76.  
  77. strcpy(newpath,cfg.path);
  78.  
  79. sprintf(nodestr,"%d",loop);
  80. strcat(newpath,nodestr);
  81.  
  82. if(IconBase) {        
  83.      dob = GetDiskObjectNew(newpath);
  84.           if(dob && dob->do_ToolTypes) {
  85.              while(dob->do_ToolTypes[count] && *dob->do_ToolTypes[count]) count++;
  86.      
  87.     while(dob->do_ToolTypes[i] && *dob->do_ToolTypes[i]) 
  88.         {
  89.  
  90.      len = strlen(dob->do_ToolTypes[i]);
  91.          
  92.     if(strcmp(strncpy(string,dob->do_ToolTypes[i],17),"NEWUSER_PASSWORD=") == 0)
  93.            {  string[0]='\0';
  94.           for(counter=17;counter<len;counter++)
  95.                {string[x] = dob->do_ToolTypes[i][counter];
  96.                 x++;}
  97.                
  98.                string[x]='\0';
  99.                x=0;
  100.                sprintf(shownup,"The New User Password for Node %d is %s",loop,string);
  101.                sm(shownup,1);
  102.  
  103.            }    
  104.                i++;    
  105.                string[0]='\0';
  106.                
  107.          }
  108.  
  109.         }
  110.  
  111.        } 
  112.       
  113.         if(dob) FreeDiskObject(dob);
  114. }
  115.                          
  116.         CloseLibrary((struct Library *)IconBase);
  117.  
  118. sm("",1);
  119.  
  120. ShutDown();
  121.  
  122. exit(0);
  123.  
  124. }
  125.  
  126. void getconfig(void)
  127. {
  128.  
  129. FILE *in;
  130. char fname[] = "doors:nup/nup.config";
  131. int len;
  132.  
  133.  if ((in = fopen(fname, "r")) == NULL)
  134.    { sm("ERROR: Can't open doors:nup/nup.config!",1); 
  135.      ShutDown();
  136.      end(); 
  137.    }
  138.  
  139.     else      
  140.        {
  141.         fgets(cfg.numnodes,5,in);
  142.         fgets(cfg.path,30,in);
  143.         fclose(in);
  144.        }
  145.  
  146.  
  147. len = strlen(cfg.numnodes);
  148. cfg.numnodes[len-1] = '\0';
  149. len = strlen(cfg.path);
  150. cfg.path[len-1] = '\0';
  151.  
  152. numnode = atoi(cfg.numnodes);
  153.  
  154. return;
  155. }
  156.  
  157. void end(void)
  158. {
  159.  
  160. exit(0);
  161.  
  162. }
  163.  
  164. void LastCommand(void)
  165. {
  166.  
  167. sm("",1);
  168.  
  169. }
  170.